###Fixtures的复用性,不同的测试函数访问同一个fixtures，fixtures数据不会变

'''
pytest中的fixtures还可以让我们像使用普通函数一样，能够定义反复重用的通用setup步骤。
两个不同的测试函数可以请求相同的fixture，每个测试函数都会获得该fixture的各自结果。
这样的优点就是，确保不同的测试函数之间不会相互影响。
我们可以使用这种机制来确保每个测试函数都获得各自新的、干净的、一致的数据。
'''

import pytest


@pytest.fixture
def first_entry():
    return "a"


@pytest.fixture
def order(first_entry):
    return [first_entry]  #[a]


def test_string(order):
    #order返回[a]
    order.append("b")
    assert order == ["a", "b"]


def test_int(order):
    #此时order还是返回[a]
    order.append(2)
    assert order == ["a", 2]